Methods and apparatuses for operating a data processing system

ABSTRACT

Methods and apparatuses for operating data processing systems. One exemplary method of operating a data processing system which includes a display device includes receiving an input from a user, the input specifying an object to be represented in a user configurable portion of a window which is displayable on a display device, and displaying the window with the user configurable portion wherein the user configurable portion is present in an open interface window or a save interface window. Other methods are also described, and data processing systems are also described.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/096,717, filed on Dec. 4, 2013, which is a continuation of U.S. patent application Ser. No. 10/873,661, filed on Jun. 21, 2004, the entirety of which are incorporated by reference herein.

FIELD OF THE INVENTION

The present invention relates to methods for operating a data processing system which includes a display device.

BACKGROUND OF THE INVENTION

Data processing systems, such as general purpose computer systems, often include a display device which can provide the user with a graphical user interface that can be used to operate the computer system. Examples of such graphical user interfaces include Mac OS X from Apple Computer, Inc. of Cupertino, Calif., and Windows XP from Microsoft of Redmond, Wash. Both of these user interfaces provide a file management system user interface as well as a user interface for opening or saving documents. In the case of the Macintosh operating system, the file management system user interface is typically a program referred to as the “Finder.” This program allows a user to copy files, move subdirectories (e.g. a folder) from one subdirectory to another subdirectory, to create subdirectories such as folders and to rename or remove the subdirectories and to launch application programs (e.g. launch a word processing program), either by opening a file or opening the application program itself. Moreover, files may be moved between subdirectories or deleted or renamed or duplicated using the Finder program. The Windows Explorer program which operates on the Windows XP operating system provides similar functionality. Both programs display the information concerning files and subdirectories (such as folders) in moveable windows which may be resized or minimized or closed. Multiple windows may be displayed at once and the windows may be overlapping or tiled and they may be moved around the display area.

Using either of these programs, a user may browse or search through the directories or subdirectories and storage media, such as hard disks, or removable media such as optical media (such as a CD or DVD).

FIG. 9A shows an example of a prior art window in the Jaguar version of the Macintosh OS X (10.2) user interface. The window 901 includes a tool bar region 903 and an icon display region 902 which displays the contents of a particular subdirectory or group of subdirectories as selected by a user. The particular view shown in FIG. 9A is an icon view selected by clicking or selecting the button 904 shown in the window 901. The window 901 also includes a resizing control 907 which may be dragged in a known manner to change the size of the window 901. Further, the window 901 also includes view buttons 905 and 906 which may be selected by a user to show either a list view or a column view, respectively. The window also includes a close button 909, a minimize button 910 and a maximize button 911. The tool bar region 903 provides the user with the ability to drag objects, such as files or folders or application programs, into the tool bar region. For example, a user may drag the Pictures folder into the tool bar region 903 or may drag a particular document or file (such as a word processing document) into the tool bar region 903. This allows the user to obtain access to a particular folder or file by just selecting (e.g. “clicking”) the object which has been dragged into the tool bar region. Upon selecting an object or icon in the tool bar region, the contents of that object are displayed within the region 902. For example, if the user has dragged the Pictures folder from the region 902 into the tool bar region 903, then a selection or clicking of the Pictures folder in the tool bar region 903 will cause the contents (in this case, 8 items) of the Pictures folder to be displayed within the region 902. The ability to place objects in the tool bar region is limited to the Finder in the Jaguar operating system, and a user customizable system does not appear in an open user interface window or a save user interface window. Further, the tool bar region as shown in FIG. 9A is not scrollable, although additional items may be accessed by selecting the double arrow in the far right of the tool bar region 903.

FIG. 9B shows another example of a user interface of a file management system, which in this case is the Windows Explorer program on a Windows operating system. The Windows Explorer window 925 includes a left portion 927 and a right portion 929. The left portion 927 displays the various media and directories and subdirectories which are accessible by the system. This region is not user customizable but reflects the actual folders and files and drives which are available to the system. The region 929 shows the contents of a particular folder or subdirectory which has been selected in the left portion 927.

While these foregoing systems provide great power and flexibility to a user, it can at times be difficult for a user to find a particular file or folder.

BRIEF SUMMARY OF THE INVENTION

Methods and apparatuses for operating a data processing system having a display device are described herein. These methods and apparatuses, at least in many exemplary embodiments, allow a user to have direct access to a set of directories, application programs, documents, etc. that a user defines as important, frequently accessed or a favorite. This makes the system more convenient and efficient.

In one aspect of the invention, an exemplary method includes receiving an input from a user, the input specifying an object (e.g. a folder) to be represented in a user configurable portion of a window which is displayable on a display device and displaying the window with the user configurable portion wherein the user configurable portion is present in an open user interface window or a save user interface window or a print interface window. In this particular example, a user may select the object (e.g. the folder) within the open or save or print user interface window to cause the contents of that object to be displayed within the open or save or print user interface window. Multiple such objects may be placed within the user configurable portion and may be used within this user configurable portion.

In another aspect of the invention, an exemplary method for operating a data processing system having a display device includes receiving an input from a user, the input specifying an object (e.g. a folder) to be represented in a user configurable portion of a window which is displayable on the display device and displaying the window with the user configurable portion wherein the window is capable of displaying files and representations of subdirectories in a file management system user interface and wherein an application program can be launched by opening a displayed file and wherein the display of the user configurable portion is capable of being scrolled. In this particular example, a user may operate a file management system user interface which includes multiple objects placed by the user in the user configurable portion.

In yet another aspect of the invention, an exemplary method for operating a data processing system having a display device includes receiving an input from the user, the input specifying an object (e.g. a folder) to be represented in a user configurable portion of a window which is displayable on a display device and displaying the window with the user configurable portion wherein the window is capable of displaying files and representations of subdirectories in a file management system user interface and wherein an application program can be launched by opening a displayed file and wherein at least one object, which represents a subdirectory, in the user configurable portion is capable of being opened by selecting an item and commanding the object to be opened while the item is selected. In one particular example of this method, the object is a spring-loaded folder within the user configurable portion.

The present invention also includes apparatuses which perform these methods, including data processing systems which perform these methods, and computer readable or machine readable media which when executed on data processing systems cause the systems to perform these methods.

Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.

FIG. 1A shows a method of operating a data processing system.

FIGS. 1B, 1C and 1D show various windows according to one embodiment of the invention.

FIG. 2A shows an example of an open user interface window according to one embodiment of the invention.

FIG. 2B shows an example of a save user interface window according to an embodiment of the present invention.

FIG. 2C shows a method for operating an open or save user interface window.

FIG. 3A shows a method, in an alternative embodiment, of operating a save or user interface window.

FIGS. 3B, 3C and 3D show an example of the windows referred to in FIG. 3A.

FIG. 4 shows a method of removing objects from a user configurable portion according to one embodiment of the invention.

FIG. 5A shows a method of one exemplary embodiment for changing the size of the objects within the user configurable portion and/or providing a scrollable portion.

FIGS. 5B, 5C and 5D show examples of windows referred to in FIG. 5A.

FIG. 6A shows an example of a method for providing feedback in connection with the use of objects in the user configurable portion.

FIGS. 6B, 6C, 6D, and 6E show examples of windows which provide feedback in connection with the use of objects within the user configurable portion.

FIG. 7A shows a method in one exemplary embodiment in which an object within the user configurable portion can be opened while maintaining a selection of a particular item; in one example this may be a spring-loaded folder.

FIGS. 7B, 7C, 7D, 7E, 7F, 7G, and 7H show an example of a spring-loaded folder in a user configurable portion of a window.

FIG. 8A shows a method of implementing a command to eject a removable media, and FIG. 8B is an exemplary user interface of this method.

FIG. 9A is an example of a prior art window displayed by the file management user interface system of Macintosh OS X (10.2; Jaguar).

FIG. 9B is an example of a prior art file management system user interface, referred to as Windows Explorer for the Windows operating system.

FIG. 10 shows a block diagram example of a data processing system which may be used with the various embodiments described herein.

DETAILED DESCRIPTION OF THE INVENTION

The subject invention will be described with reference to numerous details set forth below, and the accompanying drawings will illustrate the invention. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of the present invention. However, in certain instances, well known or conventional details are not described in order to not unnecessarily obscure the present invention in detail.

The present description includes material protected by copyrights, such as illustrations of graphical user interface images. The owners of the copyrights, including the assignee of the present invention, hereby reserve their rights, including copyright, in these materials. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyrights whatsoever. Copyright Apple Computer, Inc. 2003.

FIG. 1A shows a method for creating an object in a user configurable portion of a window and using that object in the portion. This particular method may be implemented in a window which is controlled by a file management system user interface such as the Finder program in a Macintosh operating system or other file management system user interfaces. The method of FIG. 1A may begin in operation 101 in which the data processing system receives an input from a user which indicates the placement of an object into a predetermined portion of a window. This predetermined portion may be a side bar of a window which is user configurable. This input may occur through a cursor control device, such as a mouse, which controls a cursor which is moveable on a display (although there are numerous alternative input systems including touch screens and speech recognition systems which may be used instead of a mouse). The user may select a file or folder by positioning the cursor over the file or folder and pressing down and holding down a button, such as a mouse's button, thereby causing the object, such as a file or folder, to be selected. The user may then, while maintaining the selection (by keeping the button down), “drag” the file or folder into the predetermined portion, such as a side bar of a window. The user typically deposits the object by releasing the mouse button or by otherwise providing a command to the system to unselect the object. It will be appreciated that there are numerous other ways to indicate this placement of an object into a user configurable portion of a window, such as a side bar. For example, the user may select the object and then select a command such as a “place into side bar” command or the user may select the object and then position the cursor in the portion (e.g. the side bar) and select a “paste” command to thereby deposit the object into the user configurable portion, such as a side bar. FIG. 1B shows an example of a window controlled by a file management system user interface of one embodiment of the invention. The window includes a side bar 116 which includes several objects which have been previously selected and dragged into the side bar 116 to create the objects, such as folders 120, 121, and 122 in the side bar 120. In the state of the window shown in FIG. 1B, a user could add the iPhoto folder 115 into the side bar 116 by selecting the folder 115 and dragging it into the side bar 116 or by other techniques described herein or by modifications to these techniques which are apparent to those in the art.

After the data processing system receives the input from operation 101, the data processing system then displays the object in operation 103 in the predetermined portion. The system may, for example, display the object in a scrollable area of a portion of a window controlled by a file management system user interface, such as the window 112 shown in FIG. 1B. After the one or more objects have been placed into the predetermined portion, which may be considered a user configurable portion, then the user may use the object by selecting it or performing other actions relative to the object. For example, in operation 105, the user may select the object in the predetermined portion and the system receives this input and uses a pointer to find the actual object so that it can be displayed within another portion of the window. This pointer may be a pointer to a file path name or a subdirectory. After receiving the user input in operation 105, the system displays a list or other representation of items represented by the object, such as a list of path names or subdirectories contained by the object. Examples of the display of such lists as in operation 107 are shown in FIGS. 1C and 1D. In particular, in FIG. 1C, the user has selected folder 122 which has caused the display of a list of files contained within the folder 122. Similarly, in FIG. 1D, the user has selected the folder 121 to thereby cause a display of the files contained within the folder 121 which is a subdirectory within the hierarchy of directories and subdirectories on the hard drive represented by object 125 shown in both FIGS. 1C and 1D.

Further description of the windows shown in FIGS. 1B, 1C and 1D will now be provided. The window 112 of FIG. 1B shows the content of a Pictures folder which contains the iPhoto Library folder 115. The list of items within the Pictures folder is shown in the region 114 of the window 112. The window 112 also includes a tool bar 118 which includes similar commands to the tool bar shown in FIG. 9A and also includes a close window button, a minimize button, and a maximize button as well as a menu selection for selecting the view shown in the region 114. The side bar 116 is a user configurable portion which in this case has been configured to show a Home folder 123 and a desktop 124 as well as an Applications folder and the folders 120, 121, and 122. In addition, the side bar includes the object 125 which represents a hard drive containing all the files and subdirectories on this particular system. FIG. 1C shows a window 130 which includes a region 132 which shows a listing of the files contained within the folder 122. The user may have, prior to the image shown in FIG. 1C, been viewing another folder and can then obtain a view of the contents of folder 122 by merely selecting the folder 122 in the side bar 116. The selection may occur by positioning the cursor over the folder 122 and pressing and releasing a button, such as a mouse's button. It will be appreciated that other techniques may be used to select the folder 122. The view shown within the region 122 may be referred to as a list view which may be obtained through the “view” control in the tool bar 118. The view shown within FIG. 1D is referred to as a “column” view which shows a view simultaneously in a hierarchical fashion through directories and subdirectories. The view shown in window 140 of FIG. 1D in this particular case shows that the folder or subdirectory 121 contains no other folders or subdirectories. In other words, each object in the listing shown in the column 142 is a file rather than a subdirectory containing files or other subdirectories. Note that when the column view is selected, the selection of a folder in the side bar causes the display of items in that folder (“selected folder”) and any folders which are lower in the hierarchy, but folders and directories above the selected folder are not (in one embodiment) shown in the column view.

It will be appreciated that in alternative embodiments, the side bar may be located on different regions of a window, such as along the bottom of a window or along the top of a window or along the right side of a window.

FIGS. 2A, 2B, and 2C show an embodiment in which a user configurable portion is implemented within one or both of an open or save user interface window. These user interface windows may be available system wide (to all application programs) or to at least a group of application programs which are executable upon a particular data processing system. FIG. 2A shows an example of an open user interface window, and FIG. 2B shows an example of a save user interface window, and FIG. 2C shows an example of a method for using one or both of these user interface windows. Typically, the window shown in FIG. 2A appears as a result of a user instructing the data processing system to open a file (e.g. using an “open” command to open a file in a word processing program or a spreadsheet program, etc.), and the window shown in FIG. 2B appears as a result of a user instructing the data processing system to save a file (e.g. save a copy of a file) or to “save as” a file (e.g. using a “save as” command to save a copy of the file with a different file name or file type or in a different location, etc.). The window 201 of FIG. 2A includes a side bar 116 which includes a plurality of objects including folders 120, 121, and 122 as well as the object 125 which represents a storage medium, in this case the main hard drive of a computer system, and a Home folder 123 and a desktop object 124. The open window 201 shows that the user has selected the folder 122 for the action of opening a particular file contained within that folder. The window 201 includes an open button 203 which may be selected in a conventional manner to open a file designated by the user. The cancel button 205 may be selected by the user in a conventional manner to cause the open user interface window 201 to disappear from the display without opening a file. Several other menus and controls are shown in window 201 including a document type menu selector 208 and a file format type selector 209 which allows a user to select only a portion of certain files matching the format to be displayed or to be selectable within the region 207. Other controls in the window 201 include a back button 211A and a forward button 212B which allow a user to move back or forward respectively in the same manner as back and forward buttons for a Web browser, such as Internet Explorer or Safari or Netscape's Navigator. The user can also select different types of views by using either the list view button 214A or the column view button 214B. In the example shown in FIG. 2A, the column view button has been selected by the user, resulting in the column view shown in window 201. The user may change the selection of folder 122 and go to a different folder by a conventional approach of selecting the hard drive icon which would then display a complete listing of folders and files at the highest directory level in the first column 207A and also display files and folders at the next level of hierarchy in the column 207. Rather than using this conventional approach, if the user wants to switch from the current subdirectory represented by folder 122 to the subdirectories represented by folders 120 or 121, the user may merely select either of these folders in the side bar 116 and the system will then display the contents of the selected folder within the open user interface window. The user may then select a particular file shown in the listing of column 207 and then select the open button 203 to cause the file to be opened within the particular application program, which in the case of FIG. 2A is the program AppleWorks.

FIG. 2B shows an example of a save user interface window which includes the side bar 116. This window 230 includes a save button 231 and a cancel button 232 and a new folder button 233 as well as several other graphical user interface controls. The save window 230 also includes a text entry field 235 which allows the user to enter, such as by typing, a name for the file to be saved. The side bar 116 of the window 230 allows a user to quickly select any of the particular subdirectories represented by the objects within the side bar, such as the folder 122. The contents of the folder 121 are currently shown within column 234 indicating that if the user selects the save button 231, then a file with a name given in text field 235 will be saved into the folder 121. If the user would rather save that file into a different folder, such as folder 122, the user can select the object 122 in the side bar 116 to thereby cause the display of the files within the folder 122 and then be able to save the file with the given name in the text field 235 within that different folder. The window 230 also includes a pull down menu 236 which provides an alternative mechanism for the user to change a directory or subdirectory which is currently selected for the save operation (or the open operation in the case of window 201).

FIG. 2C shows an exemplary method of using a save or open user interface window. In operation 250, the system receives an input from a user which indicates a placement of an object into a predetermined portion of a window. In one example of this method, this may occur by a user selecting a file or a folder and dragging the selected file or folder into a side bar of a window. The side bar 116 is an example of a side bar having a variety of objects including files or folders or application programs or a combination of these items. In operation 252, the system receives a user request to either open a file or save a file. This typically occurs in the context of a user using an application program such as a word processing program, a spreadsheet program, a drawing program, a Web browsing program, or numerous other types of application programs. In response to the request from operation 252, the system displays one or more objects in a predetermined portion of an open or save user interface window. Examples of these objects are folders 120, 121, and 122 shown in the side bar 116 which is an example of a predetermined portion or user configurable portion of a window, which in this case is an open or save user interface window. In operation 256, the system receives a user selection of the object in the predetermined portion of the open or save user interface window. This causes in operation 258 the display of a list or other representation of items within the path name or subdirectory represented by the object within the open or save user interface window. In the case of the save user interface window 230, the selection of folder 122 from the state shown in FIG. 2B will result in the listing of files and folders contained within the folder 122. Similarly, in the case of the open user interface window 201, which as shown in FIG. 2A, shows the contents of the folder 122, the selection of folder 121 from the side bar 116 will cause a listing of the objects contained within folder 121.

FIG. 3A shows an alternative implementation of an open or save user interface window which may be switched between modes by the use of a graphical user interface button, such as the button 322. The method of FIG. 3A may begin in operation 301 in which a compact save or open user interface window is displayed. An example of such a compact save or user interface window is the compact save window 320 which contains an expand/contract button 322 and a text entry field 321 and a pull down menu 323 and a file format pull down selector menu 324 and a save button 326 and a cancel button 325. The text entry field 321 allows the user to type in or otherwise enter a name for the file to be saved. The pull down menu 323 allows the user to select a particular location for saving the file. In the example shown in FIG. 3B, the location selected is the documents folder. If the user is satisfied with the name in the text entry field 321 and the location where the document will be saved, the user may select the button 326 in a conventional manner (e.g. click on the button by placing the cursor over the button on the display and pressing and releasing a mouse's button or other physical button). If the user wants to abort the save operation and cause the save window 320 to disappear, the user may select the button 325. Referring back to FIG. 3A, the system may, in operation 303, receive an input to display a list of predetermined subdirectories in objects from a user configurable portion in a menu such as a pull down menu. This results in the display of the menu in operation 305, wherein the menu includes a list of objects in a user configurable portion such as a side bar described herein. An example of a resulting display is shown in FIG. 3C in which a pull down menu 323A is shown and allows a user to select a particular location or to select from an object in a user configurable portion as described herein. The pull down menu 323A allows a user to move up and down through a hierarchy of directories and subdirectories and also allows a user to select directories and subdirectories which have been designated by placement in a user configurable portion. While some users are comfortable using the pull down menu such as the menu 323A, a user may decide to change from the compact save window 320 to an expanded save window shown in FIG. 3D by selecting the expand/contract button 322 from window 320. This is shown as operation 307 in which the system receives an input to display objects in the user configurable portion without a pull down menu, such as the pull down menu 323A. The system responds in operation 309 by displaying the open or save user interface window with the user configurable portion, such as the side bar 331 shown in FIG. 3D. This side bar 331 operates in a similar manner to the side bar 116 described herein. The user may return to the compact window 320 by again clicking or selecting the expand/contract button 322, resulting in a display of the window 320.

In certain embodiments of the invention, a user configurable portion may be present in both the open user interface window and the save user interface window as well as in windows controlled by the file management system user interface. In addition to these windows, the user configurable portion may also be present in print user interface windows. Alternatively, this user configurable portion may be in a subset of these windows rather than all of these windows. It will also be appreciated that additional user aids, such as a side bar tool editing window, may be provided to the user to allow the user to select various different commands which control the side bar, such as a command to restore the default configuration of the side bar or allow the user to select or deselect certain predetermined system objects, such as a main directory of a hard drive or other types of objects for inclusion in the side bar or exclusion from the side bar depending on the user's preference. Furthermore, in alternative embodiments, rather than having a separate save user interface window or an open user interface window which includes a side bar, a sheet which includes the side bars may be used as an open user interface or a save user interface. A sheet is an interface area which is attached to and inseparable from a particular document which is selected to be saved (or opened).

While various methods have been described for adding objects into a side bar, it is also possible in certain embodiments to remove objects from a side bar. FIG. 4 shows an example of a method of this removal. This method may begin in operation 401 in which the system receives an input which selects one or more of the objects in a user configurable portion, which may be a side bar of a window. The selection may occur through a number of conventional ways, including through the positioning of a cursor over a particular object and the pressing and releasing of a button, such as a mouse's button, or the use of a touch screen or a voice command to select one or more objects. In operation 403, the system receives a command to remove the selected object. In one embodiment, this may involve the user dragging the selected object outside of the side bar and releasing a button, such as mouse's button, to provide the command. It will be appreciated that a drag operation may be performed by positioning a cursor over the object and pressing a button, such as a mouse's button and holding the button down while the user moves the cursor and the object together in what is referred to as a drag operation outside of the window, and once the user has moved the object and the cursor outside of the window, the object may be removed by releasing the button which had been depressed to maintain the selection during the dragging operation. In response to the command to remove, the system in operation 405 displays the user configurable portion without the removed object. In this manner, the user may remove objects which are no longer desired to be in the user configurable portion. It will be appreciated that other ways to remove such objects may be employed, such as selecting the object and then selecting a “remove” or “delete” command.

At least in certain embodiments, the user configurable portion may contain a large number of objects. In order to accommodate such a large number, these embodiments provide for the ability to change the size of each object within the user configurable portion as well as to provide scrolling controls. It will be appreciated that, rather than providing both of these abilities, a system may provide one or the other but not both. The particular embodiment described in FIG. 5A assumes that both features are provided rather than just one, such as the scrolling controls. In the method of FIG. 5A, operation 501 displays one or more objects, such as files or folders or application programs, in a user configurable portion of a window, such as side bar of a file management system user interface window. It is assumed at this point that there is sufficient space within the user configurable portion to display all of the objects within the portion. If this is not the case, then the system will jump to operation 505. In operation 503, the system receives an input, such as an input from a user, which changes the size of the user configurable portion or which adds additional objects into the user configurable portion without changing its size. This may result in the placement of too many objects within the user configurable portion such that not all objects can be displayed within the portion at their current size. The system then in operation 505 determines whether there is a need to change the size of the objects in the user configurable portion. If there is sufficient space to display all of the currently placed objects within the user configurable portion, then the system decides there is no need to change the size and moves from operation 505 to operation 507 in which it displays the user configurable portion with an updated view, if the view has changed (such as the addition of an object into the portion). If in operation 505 it is determined that there is a need to change the size of the object or objects, then in operation 505 the system determines whether the new size of the objects is below a threshold. If it is not, then processing proceeds to operation 513 in which the size of the objects is reduced to fit all the objects within the displayed space of the portion and then operation 507 follows. If, however, in operation 509 it is determined that the size of the objects is below a threshold size, then processing proceeds to operation 511 in which scrolling controls are added to the portion. It will be appreciated that these actions may be reversed when objects are removed from the user configurable portion or when the user configurable portion is enlarged to the point that scrolling is no longer required or the objects can be returned to their default size, which in one embodiment is their largest possible default icon size. FIGS. 5B, 5C, and 5D show the progression of a side bar as the size of the side bar is reduced as a result of reducing the size of a particular window. As is known in the art, a window may be resized by controlling the window size control 519 (e.g. the window size control 519 may be dragged to dynamically change the size of the window as the control is dragged). The window 520, in addition to the size control 519, also includes a tool bar 521 and a column display 523 of files and folders within the desktop subdirectory represented by the object 537 in the side bar 524. The side bar 524 also includes folders (subdirectories) and files which have been placed within the side bar 524 by using any one of the techniques described above. For example, the side bar 524 includes files 525 and 526 which may have been placed into the side bar 524 by selecting the file from the desktop or another folder or window and by dragging these files into the side bar 524. Similarly, the side bar 524 includes folders 527-533 as well as a Home folder or subdirectory 536, a folder for Applications 535 and a subdirectory 534 for Favorites. The view shown in FIG. 5B shows the default size of the objects within the side bar 524 before the window 520 has been reduced in size. The window 520A, shown in FIG. 5C, is the result of reducing the window 520 in size. This results in the reduction of the size of the icons in the side bar 524. However, all of the objects within the side bar 524 are still completely viewable and thus scroll controls are not necessary. As the window is reduced further in size, it becomes necessary to add scrolling controls, such as scrolling controls 545, 546, and 547 as shown in FIG. 5D. In FIG. 5D, it can be seen that the window 520B results from a reduction in size of the window 520A. A user can still access all of the objects within the side bar 524 by using the up scroll control 546 or the down scroll control 547 or by selecting and dragging the scrolling object 545. Alternatively, some input devices, such as mice or keyboards with scrolling wheels, may be used to scroll within the user configurable portion 524.

It may be desirable in at least certain embodiments to provide feedback to a user when the user interacts with objects within a user configurable portion. This feedback may take a variety of different forms and certain examples of those forms are provided here. In particular, a method for providing feedback is shown in FIG. 6A and examples of feedback within a side bar are shown in the images of graphical user interfaces shown in FIGS. 6B, 6C, 6D, and 6E. The method of FIG. 6A may begin in operation 601 in which the system displays one or more objects, such as files or folders or application programs, in a user configurable portion of a window, such as a side bar of a window of a file management system user interface. The system in operation 603 receives a user input which selects an item, such as a file or a folder, and which indicates placement of the item within the user configurable portion. This may occur by the user selecting the object by positioning a cursor over it and pressing a button and maintaining the button in a depressed state and then moving the cursor and the object in a dragging operation over the particular selected object in the side bar. The system responds in operation 605 by displaying feedback with respect to the placement. The appearance of the feedback will depend upon, in this example, the particular placement. For example, the feedback may indicate whether the selected item can be deposited or not deposited into the selected object or it may indicate that the selected item may be added to the side bar at an indicated location. FIG. 6B and FIG. 6C show two examples of feedback which show where a selected object will be added to the side bar 616 of the window 615. In particular, a file (Picture 1) 617 has been dragged into the side bar region 616. In the case of FIG. 6B, the file represented by the icon 617 has been positioned for placement as indicated by line 618 between the object 622 and the object 621 within the side bar 616 as a result of dragging the icon of the file from the desktop into the side bar 616. In the case of FIG. 6C, the user has dragged the icon object 617 into the lower portion of the side bar 616 such that its placement within the side bar 616 will be below folder objects 620 and 619 as indicated by the placement line 628 shown in FIG. 6C. Thus, both FIGS. 6B and 6C show examples of feedback indicating the location where a particular object will be placed into a side bar. FIG. 6D shows an example of feedback in which an object cannot be deposited into another object. In particular, the Slides folder 631 has been dragged from the desktop over the folder object 621 and this particular feedback 632 shows that the dyna folder cannot accept the Slides folder. This may result from an incompatibility of user permissions which prevents one user from mingling his or her data with another user's data. FIG. 6E shows the feedback 641 which indicates that the Notes folder can accept the Slides folder. In this case the user is given feedback that indicates the release of the Slides folder at the end of the drag of the Slides folder 631 will cause the Slides folder to be placed within the Notes folder (resulting in an updating of the contents of the Notes folder which currently includes folders such as “Dashboard” etc.) as shown in FIG. 6E.

At least some of the objects in a user configurable portion may be objects which represent enclosures, such as folders or subdirectories, in a file management system user interface. In certain embodiments, these enclosures may be spring-loaded enclosures and have some or all of the properties of a spring-loaded enclosure, such as those described in U.S. Pat. No. 6,307,545, which patent is hereby incorporated herein by reference in its entirety. This functionality allows the user to open a folder in the side bar by selecting an object on the desktop or in another window or in the same window which includes the side bar and dragging that selected item to a particular folder in the side bar. When the user pauses (“hovers”), gestures, or rolls over a spot on the folder during the drag, a new window corresponding to the folder may be opened or the contents of that folder may be displayed in the same existing window rather than displaying the contents in the new window. This allows the user to browse inside an enclosure and possibly open a hierarchy of enclosures contained within the newly opened enclosure during the drag operation. Thus the user has access to the entire storage system hierarchy during a drag operation. By using the spring-loaded enclosure mechanism, the user is free to browse while dragging, rather than being forced to set up source and destination windows before a drag begins. This greatly improves the basic copy and move functions provided by file management system user interfaces based on windows and icons. FIG. 7A shows an exemplary method of providing spring-loaded objects within a user configurable portion, and FIGS. 7B, 7C, 7D, and 7E show examples of one implementation of spring-loaded folders within a side bar of a window for a file management user interface.

The method of FIG. 7A may begin in operation 701 in which the system displays one or more objects in a user configurable portion, such as a side bar of a window, and the system also displays one or more items in the window (or another window or the desktop space). FIG. 7B shows an example of such a display from operation 701. In particular, a window 720 includes a side bar region 725, a tool bar 721, a title 722, and a content display region 726. Also displayed with the window 720 are folders 729, 730, and 731 which have been previously placed into the user configurable portion of the side bar 725. The side bar 725 also includes a portion which is specified by the system which includes an icon or object 728 which represents the topmost directory of a storage device which in this case is the hard drive of the computer system, and an object 726 which represents a pointer or other mechanism to cause the display of elements, such as other computers or printers on the network which may be coupled to the computer system. The window 720 also includes window controls 723 which may be used to close the window or minimize the window or maximize the size of the window which is known in the art. The window 720 also includes a resize control 719 which may operate in a conventional manner. It will be appreciated that in alternative embodiments, the arrangement and type of window controls may be different while still providing for a user configurable portion. The content display region 726 shows the content of the Documents folder, which in this case includes three files, each represented by one of the three icons 735, 736, and 737. A cursor 733 is also shown in the content display region 726. The display of the window 720 shown in FIG. 7B may result from the user having already selected the folder 729 within the side bar 725 in order to cause the content display region 726 to show the contents of the Documents folder. It will be appreciated that other procedures may be used to obtain the same resulting display, such as, for example, the user may have started at the top of the hierarchy (e.g. the hard drive icon) and drove down through a series of folders to arrive at the contents of the Documents folder. The user may realize that the Test Picture file represented by icon 735 is misplaced and needs to be moved into the Pictures folder 730. This may be accomplished by simply selecting the icon 735 and dragging it over the area in the side bar of the Pictures folder 730 and releasing the icon at the end of the drag. This operation, which has been described above, would result in the placement of the Test Picture file within the Pictures folder 730. However, it may be that the user wants to put the Test Picture file within a folder which is itself within the Pictures folder or the user is not certain that the Pictures folder is ultimately the proper folder and would rather see the contents of the Pictures folder before deciding on depositing the Test Picture file into the Pictures folder.

FIG. 7C shows the selection by the user of the Test Picture icon 735, which is also shown as operation 703 in FIG. 7A, in which the system receives a selection of one of the items. The selection may occur by the user's positioning of the cursor 733 over or relative to the icon 735 and pressing and holding a button, such as a mouse's button, to maintain a selection state of the icon. This selection state is shown by outline 740 which provides feedback to the user that the icon 735 has been selected. The user may then drag the icon 735 with the cursor 733 in a well-known manner along a path, such as the path 741 as shown in FIG. 7C. It will be appreciated that other mechanisms may be used to select the icon 735 and cause it to be moved, such as the use of a touch screen rather than a cursor control device or a voice command which operates with a speech recognition system. FIGS. 7F, 7G, and 7H show examples of one implementation using a touch screen. FIG. 7F shows folder contents 790 of folder 785 on touch screen 775. Touch screen 775 also includes object 780. Moving object 780 into folder 785 on touch screen 775 may be accomplished by selecting object 780 and dragging it over folder 785. Releasing object 780 at the end of the drag would result in the placement of object 780 into folder 785. Selecting (e.g., pressing or touching 796) and holding object 780 maintains the selection state of object 780. The selection state provides feedback that object 780 has been selected. FIG. 7G shows the result of releasing object 780 over folder 785 on touch screen 775. FIG. 7H shows contents of folder 785 including object 780 (e.g., updated contents 795), on touch screen 775.

The method continues in operation 705 in which the system receives a command to open one of the objects in the user configurable portion while the previously selected element remains selected. This may occur by determining that the user has positioned the item at the end of the drag operation near the object in the side bar. The user's actions may be interpreted based upon the reduction in movement velocity of the selected icon relative to the object in the side bar or by other techniques (e.g. pressing a button on a keyboard or by speaking a command) which indicate a command to open the object in the user configurable portion while the drag operation continues. FIG. 7D shows the window 720 after the user has dragged the icon 735 into a region occupied by the folder 730 in the side bar 725. After the system determines that the user has provided a command to open the Pictures folder 730 as a spring-loaded enclosure, the system responds in operation 707 by displaying the contents of the object in the same or a new window while the item, in this case, the Test Picture icon or file 735 remains selected. FIG. 7E shows the result of a new window being opened which shows the contents of the Pictures folder 735. It can be seen that the user has moved the selected item, the Test Picture icon or file 735, into the content display region 745 which shows the content of the Pictures folder 730. The user may then decide to deposit the icon into the content display region 735, thereby moving the Test Picture file from the Documents folder to the Pictures folder, or the user may search for a folder which is within the Pictures folder and deposit the Test Picture icon into that folder. The user may deposit the selected item by releasing the mouse's button or by otherwise providing a command to indicate that the selected item is to be deposited into the selected location, as shown in operation 709 of FIG. 7A. If the user decides to not deposit the Test Picture icon into the Pictures folder, the user may move, as a continuing part of the drag, the Test Picture icon out of the window 750 and toward another region in the display, thereby causing the window 750 to close automatically, for example, in the manner described in U.S. Pat. No. 6,307,545.

It will be appreciated that numerous modifications may be made to the method of FIG. 7A and to the user interface which accompanies this method. For example, the user may be able to turn off the spring-loaded feature completely or may be able to change the system's reaction based on the amount of time the user causes the selected item to hover over a folder within the side bar of a window. For example, the user may increase the time that is required for the hover operation in order to prevent accidental opening of enclosures. Furthermore, it will be appreciated that only some of the features and functionality of spring-loaded enclosures may be provided for folders within the side bar of a window in certain embodiments.

FIGS. 8A and 8B show another embodiment of a user configurable portion which displays removable media with a graphical command which may be used to eject the media. In operation 801 of FIG. 8A, a window is displayed by the system, and this window shows media which is coupled to the data processing system. The window may be a window of a file management system user interface which shows hard drives, removable media such as CD ROM or CD-R disks or DVD disks, etc. FIG. 8B shows a window 820 which includes a side bar region 823 having a variety of objects in the user configurable portion of the side bar and also having objects in a portion of the side bar which is specified by the system. That portion includes a representation of a hard drive as well as a CD (“Mom CD”), which is a form of a removable medium, with its icon 824 and an eject command button 825 disposed next to the name of the icon in the upper portion of the side bar 823. The window 820 also includes a tool bar 821 and a content display region 822 which shows the content of the desktop in this figure. This figure shows the window 820 after the system has received an input of a removable media in operation 803. This may result from an operation in which the user inserts a CD into the computer system. The window of FIG. 8B also shows the result of the operation 805 in which a representation of a removable media is shown in the window with a representation of a command to eject the media. In the case of FIG. 8B, this command is the eject button 825. If the user selects that eject button (for example, by positioning a cursor over the button on the display and pressing and releasing a mouse button or other physical button) then the computer will receive, in operation 807 of FIG. 8A, an input on the representation of the eject command and cause the removable media to be ejected. This allows a user to directly eject the removable medium without having to first cause a menu (with many possible, selectable options) to be displayed and then selecting an eject command from the menu. The direct selection or activation of the button (e.g. by positioning the cursor, using a cursor control device, near the button on the display and then pressing and releasing a button) is much more direct and less complicated. It will be appreciated that there are numerous alternative ways to select the button which represents the eject command.

The eject command button is one example of a more general method in which an object (e.g. a removable medium) in a computer system has a group of possible commands which may apply to the object (e.g. “open” CD or “show properties/Information” CD or “burn” CD) but an icon for only the most commonly used command for the object is associated with an icon of the object so that this most commonly used command is directly available, without having to select from a menu of possible commands, through the selection of the icon for this most commonly used command.

FIG. 10 shows one example of a typical computer system which may be used with the present invention. Note that while FIG. 10 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present invention. It will also be appreciated that network computers and other data processing systems which have fewer components or perhaps more components may also be used with the present invention. The computer system of FIG. 10 may, for example, be a Macintosh computer from Apple Computer, Inc.

As shown in FIG. 10, the computer system 1010, which is a form of a data processing system, includes a bus 1020 which is coupled to a microprocessor(s) 1030 and a ROM (Read Only Memory) 1070 and volatile RAM 1050 and a non-volatile memory 1060. The microprocessor 1030 may be a G3 or G4 microprocessor from Motorola, Inc. or one or more G5 microprocessors from IBM. The bus 1020 interconnects these various components together and also interconnects these components 1030, 1070, 1050, and 1060 to a display controller and display device 1040 and to peripheral devices such as input/output (I/O) devices which may be mice, keyboards, modems, network interfaces, printers and other devices which are well known in the art. Typically, the input/output devices 1090 are coupled to the system through input/output controllers 1080. The volatile RAM (Random Access Memory) 1050 is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. The mass storage 1060 is typically a magnetic hard drive or a magnetic optical drive or an optical drive or a DVD RAM or other types of memory systems which maintain data (e.g. large amounts of data) even after power is removed from the system. Typically, the mass storage 1060 will also be a random access memory although this is not required. While FIG. 10 shows that the mass storage 1060 is a local device coupled directly to the rest of the components in the data processing system, it will be appreciated that the present invention may utilize a non-volatile memory which is remote from the system, such as a network storage device which is coupled to the data processing system through a network interface such as a modem or Ethernet interface. The bus 1020 may include one or more buses connected to each other through various bridges, controllers and/or adapters as is well known in the art. In one embodiment the I/O controller 1080 includes a USB (Universal Serial Bus) adapter for controlling USB peripherals and an IEEE 1394 controller for IEEE 1394 compliant peripherals.

It will be apparent from this description that aspects of the present invention may be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM 1070, RAM 1050, mass storage 1060 or a remote storage device. In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the present invention. Thus, the techniques are not limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system. In addition, throughout this description, various functions and operations are described as being performed by or caused by software code to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the code by a processor, such as the microprocessor 1030.

In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. 

What is claimed is:
 1. A computer-program product, tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to: display a folder on a touch screen display of a computing device, wherein the folder includes one or more objects; receive a touch input on the touch screen that selects an object and drags the object over the folder; update the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is over the folder over the folder, and wherein the updated folder includes the selected object; and display the updated folder.
 2. The computer-program product of claim 1, wherein the displayed folder is in a closed state.
 3. The computer-program product of claim 1, wherein displaying the folder includes displaying contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying the updated contents of the folder.
 4. The computer-program product of claim 1, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 5. The computer-program product of claim 1, wherein selecting an object includes providing feedback indicating the selection state of the object.
 6. The computer-program product of claim 1, further comprising instructions configured to cause a data processing apparatus to: receive a touch input to change the folder display to an open state.
 7. The computer-program product of claim 6, further comprising instructions configured to cause a data processing apparatus to: receive a new touch input on the touch screen that selects an object in the folder and drags the object out of the folder; and update the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is outside of the folder, and wherein the updated folder does not include the selected object.
 8. The computer-program product of claim 7, wherein displaying the folder includes displaying contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying the updated contents of the folder.
 9. The computer-program product of claim 7, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 10. A computer-implemented system, comprising: one or more processors; one or more non-transitory computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including: displaying a folder on a touch screen display, wherein the folder includes one or more objects; receiving a touch input on the touch screen display selecting an object, and maintaining the selection while dragging the object over the folder; updating the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is over the folder, and wherein the updated folder includes the selected object; and displaying the updated folder.
 11. The system of claim 10, wherein displaying the folder includes displaying contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying the updated contents of the folder.
 12. The system of claim 10, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 13. The system of claim 10, wherein selecting an object includes providing feedback indicating the selection state of the object.
 14. The system of claim 10, further comprising instructions configured to cause the one or more processors to perform operations including: receiving a touch input to change the folder display to an open state.
 15. The system of claim 14, further comprising instructions configured to cause the one or more processors to perform operations including: receiving a new touch input on the touch screen selecting an object in the folder and maintaining the selection while dragging the object out of the folder; and updating the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is outside of the folder, and wherein the updated folder does not include the selected object.
 16. The system of claim 15, wherein displaying the folder includes displaying contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying the updated contents of the folder.
 17. The system of claim 15, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 18. A computer-implemented system, comprising: one or more processors; one or more non-transitory computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including: displaying contents of a folder on a touch screen display; detecting a contact with the touch screen display on a displayed object; dragging the object according to movement of the detected contact while maintaining continuous contact with the touch screen display; updating the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is over the folder; and displaying the updated folder.
 19. The system of claim 18, wherein the displayed folder is in a closed state.
 20. The system of claim 18, wherein displaying the folder includes displaying one or more objects in the folder, wherein updating the folder includes updating the one or more objects in the folder, and wherein displaying the updated folder includes displaying the updated one or more objects in the folder.
 21. The system of claim 18, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 22. The system of claim 18, wherein detecting includes providing feedback indicating the selection state of the displayed object.
 23. The system of claim 18, further comprising instructions configured to cause the one or more processors to perform operations including: receiving a touch input to change the folder display to an open state.
 24. The system of claim 23, further comprising instructions configured to cause the one or more processors to perform operations including: detecting a new contact with the touch screen display on a displayed object in the folder; dragging the object according to movement of the new detected contact while maintaining continuous contact with the touch screen display; and updating the folder, wherein the folder is automatically updated when the touch input is no longer received while the object is outside of the folder.
 25. The system of claim 24, wherein displaying the folder includes displaying one or more objects in the folder, wherein updating the folder includes updating the one or more objects in the folder, and wherein displaying the updated folder includes displaying the updated one or more objects in the folder.
 26. The system of claim 24, wherein displaying the folder includes displaying at least some of the contents of the folder, wherein updating the folder includes updating the contents of the folder, and wherein displaying the updated folder includes displaying at least some of the updated contents of the folder.
 27. A system, comprising: a touch screen display; one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more processors including instructions for: displaying a folder in a closed state on the touch screen display; displaying at least one application launch icon on the touch screen display; detecting a finger contact on the touch screen display, the finger contact selecting an application launch icon and moving the application launch icon, without breaking contact with the touch screen display; and updating the contents of the folder to include the selected application launch icon when the detected contact is lifted from the touch screen display and the selected application launch icon is within a predetermined distance of the folder.
 28. The system of claim 27, further comprising instructions for: updating the displayed folder to include the selected application launch icon.
 29. The system of claim 27, further comprising instructions for: visually distinguishing a selected state of the application launch icon from an unselected state of the application launch icon. 